The disclosure relates generally to a coordinated start interpretive execution exit for a multithreaded processor, and more specifically, to a providing a wait state and a warning track in a multithreaded environment in conjunction with the coordinated start interpretive execution exit to reduce resource costs in the multithreaded environment.
In general, multithreading increases a number of processor threads that can operate in parallel within a single processor core. Multithreading provides this increased capacity by having one or more processor threads use portions of hardware of the single processor core that are currently not being used by other processor thread(s) running on that single processor core. For example, during latency caused by a cache-miss or other delay in a first processor thread, one or more other processor threads can utilize core resources dispatched to the first processor thread during the cache-miss, thus increasing a utilization of those core resources.
Although multithreading provides hardware savings, the addition of another thread consumes more coordination costs at a software level than that required to provide an increased capacity using an additional, separate processor core. In many instances, once a certain scaling ratio is achieved, the overhead to coordinate the core resources between threads, whether run on a single or shared processor core, is substantial and can decrease or even outweigh the benefits of an independent processor thread.